// 版权归 瞄你个汪 所有。使用本代码应遵守相关法律法规和Apache 2.0开源许可要求。
package top.geeke.entity;

import org.apache.ibatis.type.JdbcType;
import top.geeke.entity.base.EntityBaseId;
import top.geeke.toolkit.supertable.annotation.SuperColumn;
import top.geeke.toolkit.supertable.annotation.SuperTable;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * <p>
 * 系统代码生成字段配置表
 * </p>
 * @author 瞄你个汪
 * @since 2024-05-01 12:00:00
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "sys_code_gen_config")
@SuperTable(value = "系统代码生成字段配置表", isSystem = true)
public class SysCodeGenConfig extends EntityBaseId implements Serializable {
    private static final long serialVersionUID = 1L;

    @SuperColumn(value = "主表ID")
    private Long codeGenId;

    @SuperColumn(value = "字段名称", length = 128)
    private String columnName;

    @SuperColumn(value = "属性名称", length = 128)
    private String propertyName;

    @SuperColumn(value = "字段数据长度")
    private int columnLength;

    @SuperColumn(value = "字段描述", length = 128, nullable = true)
    private String columnComment;

    @SuperColumn(value = "Java数据类型", length = 64, nullable = true)
    private String javaType;

    @SuperColumn(value = "作用类型", length = 64, nullable = true)
    private String effectType;

    @SuperColumn(value = "外键实体名称", length = 64, nullable = true)
    private String fkEntityName;

    @SuperColumn(value = "外键表名称", length = 128, nullable = true)
    private String fkTableName;

    @SuperColumn(value = "外键显示字段", length = 64, nullable = true)
    private String fkColumnName;

    @SuperColumn(value = "外键显示字段Java类型", length = 64, nullable = true)
    private String fkColumnJavaType;

    @SuperColumn(value = "字典编码", length = 64, nullable = true)
    private String DictTypeCode;

    @SuperColumn(value = "列表是否缩进", length = 8, nullable = true)
    private String whetherRetract;

    @SuperColumn(value = "是否必填", length = 8, nullable = true)
    private String whetherRequired;

    @SuperColumn(value = "是否可排序", length = 8, nullable = true)
    private String whetherSortable;

    @SuperColumn(value = "是否是查询条件", length = 8, nullable = true)
    private String whetherSearchable;

    @SuperColumn(value = "查询方式", length = 16, nullable = true)
    private String searchType;

    @SuperColumn(value = "是否在列表显示", length = 8, nullable = true)
    private String whetherTable;

    @SuperColumn(value = "是否可增改", length = 8, nullable = true)
    private String whetherAddUpdate;

    @SuperColumn(value = "主键", length = 8, nullable = true)
    private String columnKey;

    @SuperColumn(value = "数据库中类型", length = 64, nullable = true)
    private String dataType;

    @SuperColumn(value = "是否通用字段", length = 8, nullable = true)
    private String whetherCommon;

    @SuperColumn(value = "显示文本字段", columType = JdbcType.LONGVARCHAR, nullable = true)
    private String displayColumn;

    @SuperColumn(value = "选中值字段", length = 128, nullable = true)
    private String valueColumn;

    @SuperColumn(value = "父级字段", length = 128, nullable = true)
    private String pidColumn;

    @TableField(fill = FieldFill.INSERT)
    @SuperColumn(value = "序号", defaultValue = "100")
    private Integer orderNo;
}
